﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SmartMathLibrary
{
    /// <summary>
    /// This structure defines two factors of a number.
    /// </summary>
    [Serializable]
    public struct NumberFactors
    {
        /// <summary>
        /// The first factor of the number.
        /// </summary>
        private UInt64 firstFactor;

        /// <summary>
        /// The second factor of the number.
        /// </summary>
        private UInt64 secondFactor;

        /// <summary>
        /// Initializes a new instance of the <see cref="NumberFactors"/> struct.
        /// </summary>
        /// <param name="firstFactor">The first factor of the number.</param>
        /// <param name="secondFactor">The second factor of the number.</param>
        public NumberFactors(UInt64 firstFactor, UInt64 secondFactor)
        {
            this.firstFactor = firstFactor;
            this.secondFactor = secondFactor;
        }

        /// <summary>
        /// Gets or sets the first factor of the number.
        /// </summary>
        /// <value>The first factor of the number.</value>
        public UInt64 FirstFactor
        {
            get { return firstFactor; }
            set { firstFactor = value; }
        }

        /// <summary>
        /// Gets or sets the second factor of the number.
        /// </summary>
        /// <value>The second factor of the number.</value>
        public UInt64 SecondFactor
        {
            get { return secondFactor; }
            set { secondFactor = value; }
        }
    }
}